错误:找不到请求的 .Net Framework Data Provider。可能没有安装. |
您所在的位置:网站首页 › 找不到net framework data provider › 错误:找不到请求的 .Net Framework Data Provider。可能没有安装. |
今天在帮同事Debug的时候遇到这个问题,错误信息提示到是Data Provider的问题,首先我们看下环境. 数据库版本:Oracle 11.2.0.4.0 64位 数据库服务器:linux 应用服务器:32位windows IIS:IIS7 .NetFramework:4.0 猜测到是没有安装.Net Framework的版本对应的Data Provider,查看web.config下面的节点: 并没有发现这里配置了DataProvider. 我们去对应版本的.NetFramework安装目录下的machine.config下去找这个结点 我的安装目录是: 也没有发现DataProvider配置. 到目前为止,我们就可以确定,是config里面少了配置项,现在我们来为.NetFramework添加Oracle提供的相应版本的Data Provider. 二.查看是否有相应的Data Provider 首先,确定我们系统上已有的Data Provider,因为我用的数据库是Oracle,所以我的Data Provider是Oracle提供的,Oracle的安装目录里可以查看到,我的是: 其中目录中的odp.net就是 Oracle Data Provider for .Net的缩写. 2.x是.NetFramwork 2.0版本的Data Provider(直到.NetFramework4以下,.NetFramwork3.0和.NetFramwork3.5只是加了不同的组件,但内核都是2.0) 4是.NetFramwork 2.0版本的Data Provider 它们是通过Oracle.DataAccess.dll来提供服务的.我们可以通过在vs.net命名行窗口下用gacutil.exe /l Oracle.DataAccess命令来查看安装的odp.net版本. 显示我已经安装了两个版本的Oracle Data Provider. 也可以通过在C:\Windows\assembly目录下查看Oracle.DataAccess.dll的程序集版本,处理器平台等特性.但有一个问题,我的本机查不到4.0版本的Oracle.DataAccess.dll安装信息.
但生产环境能查到,如下所示: 程序集的版本是10.2.0.100. 三.Oracle Data Provider的安装 如果没有对应的ODP.Net,需要自行安装,怎么知道你需要哪个类型哪个版本的ODP.Net呢? 这里有两个原则 1..Net应用程序与ODP.Net处理器类型保持一致,如:IIS的应用程序池是64位,那么ODP.Net的版本也要是64位的; 2..Net应用的.NetFramework版本与ODP.Net的版本也要保持一致. 下载地址(总揽):http://www.oracle.com/technetwork/topics/dotnet/downloads/index.html 64位ODP.Net下载地址:http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html 32位ODP.Net下载地址:http://www.oracle.com/technetwork/database/windows/downloads/utilsoft-087491.html 注意下载的时候,跟你的数据库版本保持一致. 以安64位ODP.Net为例: 1、下载完成后,将其解压到某个目录,比如D:\oracle11g\ODP.Net,cmd下键入命令: D:\oracle11g\ODP.Net\x64>install.bat all c:\odp.net myhome (install all components) 上述命令将自动把所有文件复制到c:\odp.net下 2、然后转到c:\odp.net下,键入命令: c:\odp.net>configure.bat all myhome (configure all component) 将自动向GAC中部署相应的程序集.四.Oracle Data Provider的配置 安装了过后,你可以在对应的.NetFramework版本下查看machine.config里面的节点,如果没有,你可以在这个节点下添加.版本信息什么的,要与你前面安装的保持一致. 也可以在你的应用程序下的webconfig下面的节点添加上述信息.推荐在machine中添加,这样使用相应版本的.NetFramework下的应用程序就不用单独再一一配置了.五.使用Oracle Data Provider提供的程序集 现在可以打开你的VS,添加Oracle Data Provider(ODP.Net)提供的程序集Oracle.DataAccess.dll了. 现在,可以使用这个Oracle提供的DLL来访问Oracle数据库了.前面的问题也迎刃而解.其他不同类型的数据库也可以按照这个思路来解决. 原文地址:http://www.cnblogs.com/gudi/p/6110875.html |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |